包装类
- 为什么要有包装类?
- Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的
- 集合需要
自动装箱 & 自动拆箱(编译器)
- 自动装箱:基本类型自动转为包装类(int >> Integer)
- 自动拆箱:包装类自动转为基本类型(Integer >> int)
1
2
3
4
5
6
7public class TestInteger {
public static void main(String[] args) {
Integer i = new Integer(100); //Java5.0之前必须new生成一个Integer对象
Integer j = 100; //自动装箱,调用Integer.valueOf()方法实现,效率更高
int m = j; //自动拆箱,调用Integer.intValue()方法实现
}
}
缓存机制cache
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35public class TestVlaueOf {
public static void main(String[] args) {
Integer i1 = 100; //Integer、Short、Byte、Character、Long类似
Integer i2 = 100;
Integer i3 = 200;
Integer i4 = 200;
System.out.println(i1==i2); //true
System.out.println(i3==i4); //false
System.out.println(i1.equals(i2)); //true
System.out.println(i3.equals(i4)); //true
/*通过valueOf方法创建Integer对象的时候,如果数值在 [-128,127] 之间,便返回指向
IntegerCache.cache中已经存在的对象的引用;否则创建一个新的Integer对象
public static Integer valueOf(int i) {
if(i >= -128 && i <= IntegerCache.high)
return IntegerCache.cache[i + 128];
else
return new Integer(i);
}
*/
Double j1 = 100.0;
Double j2 = 100.0;
Double j3 = 200.0;
Double j4 = 200.0;
System.out.println(j1==j2); //false
System.out.println(j3==j4); //false
Boolean k1 = false;
Boolean k2 = false;
Boolean k3 = true;
Boolean k4 = true;
System.out.println(k1==k2); //true
System.out.println(k3==k4); //true
}
}
String
- String类简介
- String类常用方法
- String、StringBuilder & StringBuffer区别
日期处理:date。calendar
- Date
- Calendar
Math & Random
System
scanner